package com.yidu.filter;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 类的描述：Interceptor 拦截器
 * MyInterceptor 继承 HandlerInterceptorAdapter  拦截器适配器
 * MyInterceptor 也可以实现 HandlerInterceptor 接口
 *
 * HandlerInterceptorAdapter 实现HandlerInterceptor 接口
 *
 *@Component  注解的意思是 容器会帮我们创建这个拦截器
 *
 *
 * @author sunny
 * @version 1.0
 * @since 2022/09/06
 */
@Component
public class MyInterceptor extends HandlerInterceptorAdapter {
    /**
     * 拦截处理的方法
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器
     * @return   返回 false 则阻止  返回true 放行
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //得到session
        HttpSession session = request.getSession(false);
        if(session==null){
            session=request.getSession(true);
        }
        //通过session得到用户名 进行判断，因为一旦登陆正确了，就会把用户名，放入session当中
        //通过session中的用户名 来判断是否已经正确登陆
        String userName = (String) session.getAttribute("userName");
        System.out.println("我是拦截器。。。。。。。。。。。。。。。" + userName);
        if(userName==null||userName.equals("")){
            response.sendRedirect("toLogin");//登录的方法
            return false;
        }else
        {
            return true;
        }
    }
}